//
//  prototypes.h
//  imageToASCII
//
//  Created by Benno Lauther on 04.01.14.
//  Copyright (c) 2014 Benno Lauther. All rights reserved.
//
#include "typedefs.h"
#include "macros.h"

#ifndef imageToASCII_prototypes_h
#define imageToASCII_prototypes_h

Pixel*      setPixel(Pixel*, uint8_t, uint8_t, uint8_t);



Image*          getImage(char*);
enum filetype   getFileType(char*);
Size            getImageSize(char*);

Image*          getBmp(char*);
void            hexDumpImageData(Image* image);

// Block -> ASCII
char*           getAsciiCharacterWithColor(Image*, Block*);
char*           getAsciiFromBlock (Image*, Block*);
Color*          getAverageColor(Image*,Block*);
Size*           getBlockSize(Size*, Size*);
char*           colorToAnsii(Color*);

char*           transformImageToAsciiPixel(Image*, Size*);
int             runVideo(char* folder, char* format, int frameCount, int optionCount, ... );

char*           transformImageToAsciiArtColored(Image*);
char*           transformImageToAsciiArtMonochrome(Image*, Size*);
char            colorToAsciiArtMonochrome(Color* averageColor);
char*           colorToAnsi(Color*);


//int           parse(int argc, char* argv[]);
void            help (int , char**);
int             parseArguments(int, char**, Size*);
int             printImageToConsole(Size*, enum conversionOption, char*);
int             printImageToFile(char*, Size*, char*);

#endif
